package vg.services.graph_view_manager.interfaces.graph_view;

import vg.services.progress_manager.interfaces.IProgressTask;

/**
 * Interface for any action to graph view.
 *
 * @author Timur Zolotuhin (e-mail: tzolotuhin@gmail.com)
 */
public interface IGraphAction {
    /**
     * This method will called from some thread (not EDT).
     * <p>
     * Note: don't create any threads and don't use <b>graphRenderer</b>
     * after finishing apply method.
     */
    public void apply(IGraphRenderer graphRenderer);

    /**
     * Returns action progress task, may be <b>null<b/>.
     */
    public IProgressTask getProgressTask();
}
